var $$ = $$ || {};

$$.UE = {
	/**
	 * 加入onCopy的事件，在用户复制的时候，强行加入声明版权。
	 * FF 通过 Flash插件实现复制功能。
	 */
	onCopyNote : function(){
		document.body.oncopy = function(e){
			var text;
			if($$.isIE){
				text =  document.selection.createRange();
				text = text.text;
			}else if($$.isFF){
				text = window.getSelection();
				text = text.toString();
			}

			text += "\r\n转载请保留本站{0}的链接，谢谢你的举手之劳！出处：{0}".format(location.href);
			
			(e || event).returnValue = false;
			$$.isIE && clipboardData.setData('Text' , text);
		}
	}
	
	
	/**
	 * 返回True表示已安装Firebug。
	 * 提示文字参考：
	 * “你已经按照Firebug的插件，这样会引致浏览页面的速度减慢。我们建议你针对我们关闭Firebug。”
	 * @return {Boolean}
	 */
	,detectFirebug : function(){
		return (console && console.firebug) || document.getElementById('_firebugConsole');
	}
	
	/**
	 *	禁止选择形成可复制的选区。
	 */
	,unselectable : function(){
		if($$.isIE){
			document.onselectstart = function(){
				var el = event.srcElement;
				if (!((el.tagName == "INPUT" && el.type.toLowerCase() == "text") || el.tagName == "TEXTAREA"|| el.tagName == "SELECT")){
					return false;
				}
			}
		}else if($$.isFF){
			Ext.onReady(function(){
				document.getElementsByTagName('body')[0].style.MozUserSelect = 'none';
			});
			Ext.fly(document).on('mousedown', function(e){
				var bodyEl = document.getElementsByTagName('body')[0];
				var isFormEl = /(input|textarea|select)/ig.test(e.target.tagName)
				bodyEl.style.MozUserSelect = isFormEl ? 'text' : 'none';
			});
		}
	}
	
	/**
	 * 是否禁止鼠标右键？
	 */
	,noRightClick : function(){
		document.oncontextmenu = function(){
			return false;
		};	
	}
	
	/**
	 * @param {Boolean} giveWarnWhenRefreshinIE True表示为免除刷新时会提示的影响。
	 */
	,leaveWarning : function(preventGivingWarnWhenRefreshinIE){
		var leave = function(){
			return "提示：\“退出系统\”请点系统的\“安全退出\”!";
		}
	
		if(preventGivingWarnWhenRefreshinIE){
			//只有点右上角X的时候弹出提示,让用户确认(是否关闭)
			//解决了onbeforeunload()函数在刷新页面也弹出的问题)
			//而且无需再body中加载
			window.onbeforeunload = function(){
				//?event.clientX>   document.body.clientWidth-20   &&   event.clientY   <   0
				if (event.clientX > 360 && event.clientY < 0) {
					window.event.returnValue = $$.leaveWarning.Text
			    }
			}
			if(!$$.isIE){
				window.onbeforeunload = leave;
			}
			return 0;
		}
		window.onbeforeunload = leave;
		// 使BackSpace、F5等键无效
		Ext.getBody().on('keydown', function (e) {
		    // [Alt] + [←]
		    if (e.altKey && (e.keyCode == 37)) {
		        e.stopEvent();
		    }
		    // [Alt] + [→]
		    if (e.altKey && (e.keyCode == 39)) {
		        e.stopEvent();
		    }
		    // [F5]
		    if (e.keyCode == 116) {
		        if (Ext.isIE) e.browserEvent.keyCode = 0;
		        e.stopEvent();
		    }
		    // [Ctrl] + [R]
		    if (e.ctrlKey && (e.keyCode == 82)) {
		        e.stopEvent();
		    }
		    // [Esc]
		    if (e.keyCode == 27) {
		        e.stopEvent();
		    }
		    // [Backspace]
		    if (e.keyCode == 8
		            && ((e.getTarget().type != 'text'
		                && e.getTarget().type != 'textarea'
		                && e.getTarget().type != 'password')
		                || e.getTarget().readOnly)) {
		        e.stopEvent();
		    }
		});
	}
};